import { request } from './index'

/**
 * 获取智能体列表
 * @param {Object} params - 查询参数
 * @param {number} params.page - 页码
 * @param {number} params.limit - 每页数量
 * @param {string} params.search - 搜索关键词
 * @param {string} params.agent_type - 智能体类型（新字段）
 * @param {string} params.type - 智能体类型（兼容旧字段）
 * @param {string} params.category - 智能体分类
 * @param {string} params.status - 智能体状态
 * @param {string} params.department_id - 部门ID
 * @returns {Promise}
 */
export function getAgentList(params = {}) {
  return request({
    url: '/v1/agent',
    method: 'get',
    params
  })
}

/**
 * 获取智能体详情
 * @param {number} id - 智能体ID
 * @returns {Promise}
 */
export function getAgentDetail(id) {
  return request({
    url: `/v1/agent/${id}`,
    method: 'get'
  })
}

/**
 * 创建智能体
 * @param {Object} data - 智能体数据
 * @param {string} data.name - 智能体名称
 * @param {string} data.description - 智能体描述
 * @param {string} data.icon - 智能体图标
 * @param {string} data.category - 智能体分类
 * @param {string} data.agent_type - 智能体类型
 * @param {string} data.status - 智能体状态
 * @param {Object} data.config - 智能体配置
 * @param {string} data.department_id - 部门ID
 * @returns {Promise}
 */
export function createAgent(data) {
  return request({
    url: '/v1/agent',
    method: 'post',
    data
  })
}

/**
 * 更新智能体
 * @param {number} id - 智能体ID
 * @param {Object} data - 更新数据
 * @returns {Promise}
 */
export function updateAgent(id, data) {
  return request({
    url: `/v1/agent/${id}`,
    method: 'put',
    data
  })
}

/**
 * 删除智能体（软删除）
 * @param {number} id - 智能体ID
 * @returns {Promise}
 */
export function deleteAgent(id) {
  return request({
    url: `/v1/agent/${id}`,
    method: 'delete'
  })
}

/**
 * 永久删除智能体（硬删除）
 * @param {number} id - 智能体ID
 * @returns {Promise}
 */
export function hardDeleteAgent(id) {
  return request({
    url: `/v1/agent/${id}/hard`,
    method: 'delete'
  })
}

/**
 * 搜索智能体
 * @param {string} keyword - 搜索关键词
 * @param {number} limit - 返回数量限制
 * @returns {Promise}
 */
export function searchAgents(keyword, limit = 10) {
  return request({
    url: '/v1/agent/search',
    method: 'get',
    params: { keyword, limit }
  })
}

/**
 * 获取用户智能体数量
 * @param {number} userId - 用户ID（可选，不传则获取当前用户）
 * @returns {Promise}
 */
export function getUserAgentsCount(userId) {
  const params = userId ? { user_id: userId } : {}
  return request({
    url: '/v1/agent/count',
    method: 'get',
    params
  })
}

/**
 * 获取智能体类型列表
 * @returns {Promise}
 */
export function getAgentTypes() {
  return request({
    url: '/v1/agent/types',
    method: 'get'
  })
}

/**
 * 获取智能体分类列表
 * @returns {Promise}
 */
export function getAgentCategories() {
  return request({
    url: '/v1/agent/categories',
    method: 'get'
  })
}

/**
 * 获取智能体状态列表
 * @returns {Promise}
 */
export function getAgentStatuses() {
  return request({
    url: '/v1/agent/statuses',
    method: 'get'
  })
}


/**
 * 复制智能体
 * @param {number} id - 源智能体ID
 * @param {Object} data - 新智能体数据（可选）
 * @returns {Promise}
 */
export function copyAgent(id, data = {}) {
  return request({
    url: `/v1/agent/${id}/copy`,
    method: 'post',
    data
  })
}

/**
 * 导出智能体配置
 * @param {number} id - 智能体ID
 * @returns {Promise}
 */
export function exportAgent(id) {
  return request({
    url: `/v1/agent/${id}/export`,
    method: 'get'
  })
}

/**
 * 导入智能体配置
 * @param {Object} data - 智能体配置数据
 * @returns {Promise}
 */
export function importAgent(data) {
  return request({
    url: '/v1/agent/import',
    method: 'post',
    data
  })
}
